#!/bin/bash
#
#  Copyright (c) 2017, The OpenThread Authors.
#  All rights reserved.
#
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions are met:
#  1. Redistributions of source code must retain the above copyright
#     notice, this list of conditions and the following disclaimer.
#  2. Redistributions in binary form must reproduce the above copyright
#     notice, this list of conditions and the following disclaimer in the
#     documentation and/or other materials provided with the distribution.
#  3. Neither the name of the copyright holder nor the
#     names of its contributors may be used to endorse or promote products
#     derived from this software without specific prior written permission.
#
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
#  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
#  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
#  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
#  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
#  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
#  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
#  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
#  POSSIBILITY OF SUCH DAMAGE.
#
#  Purpose:
#       Some platforms automatically run various services that interfere with the
#       OpenThread web service, this script disables those services
#

bbb_disable_services()
{
    SERVICE_LIST=""
    SERVICE_LIST="${SERVICE_LIST} apache2 " # Debian jessie
    SERVICE_LIST="${SERVICE_LIST} nginx "   # Debian stretch
    SERVICE_LIST="${SERVICE_LIST} bonescript-autorun.service"
    SERVICE_LIST="${SERVICE_LIST} bonescript.socket"
    SERVICE_LIST="${SERVICE_LIST} bonescript.service"
    SERVICE_LIST="${SERVICE_LIST} cloud9.socket"
    SERVICE_LIST="${SERVICE_LIST} cloud9.service"
    SERVICE_LIST="${SERVICE_LIST} nodered.service"
    SERVICE_LIST="${SERVICE_LIST} dnsmasq.service" # Disable well before bind9

    if have systemctl; then
        for service in $SERVICE_LIST; do
            if [ "$(sudo systemctl is-active "$service")" != "inactive" ]; then
                for action in stop disable; do
                    sudo systemctl "$action" "$service"
                done
            fi
        done
    fi

    # stop avahi from advertising for cloud9 and nodered
    sudo rm -rf /etc/avahi/services
    # default dnsmasq configuration for connman tether conflicts with bind9
    # removing the directory stops the startup script from creating
    # /etc/dnsmasq.d/SoftAp0
    sudo rm -rf /etc/dnsmasq.d
}

disable_services()
{
    case $PLATFORM in

        beagleboneblack)
            bbb_disable_services
            ;;

        *)
            echo "Nothing to disable" >/dev/null
            ;;
    esac
}
